This article will walk you through the process of implementing MailChimp into your instance of DotKernel API using drewm/mailchimp-api
Step 1: Add the library to your application using the following command:
composer require drewm/mailchimp-api
Step 2: Create configuration file config/autoload/mailchimp.global.php and paste the following content inside of it:
<?php
declare(strict_types=1);
return [
'mailChimp' => [
'apiKey' => '{YOUR_API_KEY_HERE}'
// you can add more MailChimp-related parameters to this array
]
];
Step 3: Create factory src/App/src/MailChimp/Factory/MailChimpFactory.php which will return an instance of DrewM\MailChimp. Paste the following content inside this file:
<?php
declare(strict_types=1);
namespace Api\App\MailChimp\Factory;
use DrewM\MailChimp\MailChimp;
use Psr\Container\ContainerInterface;
/**
* Class MailChimpFactory
* @package Api\App\MailChimp\Factory
*/
class MailChimpFactory
{
/**
* @param ContainerInterface $container
* @return MailChimp
* @throws \Exception
*/
public function __invoke(ContainerInterface $container) : MailChimp
{
$config = $container->get('config')['mailChimp'] ?? [];
return new MailChimp($config['apiKey'] ?? '');
}
}
Step 4: Let your application use this factory by adding it to the main ConfigProvider:
To do this, open file src/App/src/ConfigProvider.php and locate the method called getDependencies().
Inside this method, locate the key factories which points to an array. Inside this array add the following line:
MailChimp::class => MailChimpFactory::class,
Make sure you you add the corresponding uses:
use Api\App\MailChimp\Factory\MailChimpFactory; use DrewM\MailChimp\MailChimp;
After this, you can start using the library by @Injecting MailChimp::class where it’s needed.
Looking for PHP, Laminas or Mezzio Support?
As part of the Laminas Commercial Vendor Program, Apidemia offers expert technical support and services for:
Leave a Reply